/**
 * 防抖原理：一定时间内，只有最后一次操作，再过wait毫秒后才执行函数
 * 
 * @param {Function} func 点击后需要执行的函数
 * @param {Function,Array} infos 点击需要传的参数
 * @param {Number} wait 延迟执行的参数,默认500毫秒
 */
let timeout = null;
export default function debounce(func, info = '', wait = 500) {
	// 清除定时器
	if (timeout !== null) clearTimeout(timeout);
	// 设置定时器，当最后一次操作后，timeout不会再被清除，所以在延时wait毫秒后执行func回调方法
	timeout = setTimeout(function() {
		typeof func === 'function' && func(info);
	}, wait);
}
